メインコンテンツにスキップ

SourceChara

表の説明

ソーステーブルを作成するときは、必ず公式ソーステーブルの最初の3行をそのままコピーして、4行目以降にデータを入力してください。列の順番は絶対に変えないでください。

タイプ説明
idテキストその項目を唯一無二に識別するための最重要IDです。キャラ表内で他のすべての項目と区別するために使われます。このIDがバニラや他のMODのIDと被った場合、最後に読み込まれたテーブルが優先されます。スペースは絶対に入れず、必要ならsnakecase(例:mymod_chara_yajyuu_senpai)を使うことをおすすめします。
_id整数図鑑での表示順を決める数値です。重複しても問題ありません。
name_JPテキストゲーム内で実際に表示される日本語の名前です。
nameテキストゲーム内英語名です。他の言語はSourceLocalization.jsonで対応します。
aka_JPテキストゲーム内で表示される二つ名・肩書きの日本語表記です。
akaテキスト二つ名・肩書きの英語表記です。他の言語はSourceLocalization.jsonで対応します。
idActorテキストPCCパーツを使って描画するかどうかを制御します。例:pcc,unique,jure と書くと、pcc/unique/jureからPCCパーツを読み込みます。
sortテキストSourceCharaでは使用していません。
sizeテキストこのキャラが占めるタイルサイズです。通常は空欄。2,2のように指定すると2×2タイルを占有し、押し出されなくなります。
_idRenderDataテキストスプライトシートの参照先を制御します。chara/chara_LなどはTexture ReplaceのテクスチャとtilesのタイルIDを使用(スロットに限りがあり上書きされる可能性あり)。@charaTexture内にある同じIDのテクスチャを直接使用します。MODキャラは必ず@charaを使用してください。
tiles整数スプライトシートのタイルID、またはMODキャラの場合はskinsetです。
tiles_snow整数雪マップで使用する代替タイルIDです。MODキャラはテクスチャバリエーションを使用してください。
colorMod整数主に100と組み合わせて使用し、グレースケールのスプライトにmainElementの色を乗せる機能です。
componentsテキストSourceCharaでは使用していません。
defMatテキストSourceCharaでは使用していません。
LV整数キャラの「危険度」。マップの危険度に応じた生成判定、選択コスト(奴隷商人・調教師)、種族/職業ごとの基礎ステータス生成に影響します。
chance整数マップ生成確率の補正値(販売リストにも影響する可能性あり)。初期値は100です。
quality整数0–2:通常モンスター。3:ユニークモンスター(卵入手可能だが友達・捕獲・調教不可)。4:ユニークキャラ(卵のみ。友達にはなれるが捕獲・調教不可)。
hostilityテキストプレイヤー・味方・傍観者に対する性格。空欄だとHostile(敵対)。Neutralは攻撃されない限り先制攻撃しない。Friendは味方に対して敵対的な対象を攻撃し、プレイヤーが怒っているときも攻撃します。
biomeテキスト指定した床タイプでの生成率が上昇(場合により2倍)、それ以外では低下(場合により半減)します。例:Waterにすると水上の床を強く好みます。
tagテキスト既知のタグ:mini(スプライト半分サイズ)、noRandomProduct(幸運の太鼓で下着が出ない可能性)、random_colorcolorMod=100時に髪の色をランダム化)、randomFishstaticSkin(性別によるスプライト割り当てを固定)、snow(雪マップを好む)、water(水タイルを好む)など。
traitテキスト複雑な特性の羅列です。特性ドキュメントとTrait*クラスの実装を参照してください。
raceテキストSourceRaceの種族IDを指定します。
jobテキストSourceJobの職業ID。省略時はnoneになります。
tacticsテキスト割り当てられた職業のデフォルト戦術を上書きします。
aiIdleテキスト待機時のAI行動を追加・上書きします。例:Stand(完全に動かず攻撃されても反応しない)、Root(攻撃されるか勧誘されるまで動かない)。
aiParamテキスト3つの数値(敵との理想距離、毎ターンその距離に移動する確率、まれに使う再移動確率)。
actCombatテキスト戦闘中に使用可能なSourceElementのIDをカンマ区切りで指定。/Nで使用確率を固定できます。バフ系は/ptを付けるとパーティ全体に効果(味方バフのみ)。例:ActThrowPotion/30,SpWeakness,SpSpeedDown,SpWisdom/50/pt。省略時は確率100。
mainElementテキスト主要属性親和性。FireColdLightningDarknessNetherSoundChaosPoisonCutAcidImpactから選択。
elementsテキスト受動的なSourceElementをカンマ区切りで指定。/Nでレベル・数値を設定可能。0や負の値で種族からの継承を無効化・調整できます。例:invisibility/1(有効)、invisibility/0(継承無効)、antidote/-30(肉に毒を付与)など。
equipテキスト職業のランダム装備テンプレートを上書きします(種族のEQが空でない場合のみ有効)。例:盗賊職業にequip=Archerとすると弓兵装備になりますが、犬種族のように種族EQが空の場合は装備が生成されません。
lootテキスト追加ドロップアイテム(Thing/ThingVのID)をカンマ区切りで指定。後ろに/Nを付け、20で+1%のドロップ率になります。例:medal/500=25%、medal/3000=150%(確定1個+50%でもう1個)。
categoryテキストほとんどの項目はデフォルトのcharaを使用します。
filterテキストSourceCharaでは使用していません。
gachaFilterテキストガチャで最初にカテゴリ(resident/livestock/Unique/defaultなど)を選び、このフィルターで条件に合うキャラを抽出します。例:livestockカテゴリではlivestockタグを持つものだけが対象になります。
toneテキスト日本語テキストの会話トーン修飾子です。
actIdleテキスト非戦闘時の特殊行動。例:readBook(ランダム本を生成・読書・削除)、buffMage(定期的にspResElementspHeroなどのバフ魔法を唱える)など。
lightDataテキストSourceCharaでは使用していません。発光色を設定できます。
idExtraテキストSourceCharaでは使用していません。追加の描画データ。
bioテキストスラッシュ区切りの値(空白なし):genderm/f/n、必須)、age(任意)、height(任意)、weight(任意)、chara_tone.xlsxtone(任意)、chara_talk.xlsxtalk(任意)。例:f/51044/152/46/friendly|私|あなた
faithテキスト固定の信仰。設定するとゲーム内で変更できなくなります。
worksテキストSourceHobbyのaliasを指定します。
hobbiesテキストSourceHobbyのaliasを指定します。
idTextテキストCharaTextテーブル内の対応するIDと紐付けます。
moveAnimeテキスト移動アニメーションの種類。hopまたは空欄。
factoryテキストSourceCharaでは使用していません。
componentsテキストSourceCharaでは使用していません(重複列)。
recruitItemsテキスト特殊な勧誘会話用アイテム。現在はmani専用です。
detail_JPテキストSourceCharaでは使用しません。メモ用途としてご自由にどうぞ。
detailテキストSourceCharaでは使用しません。メモ用途としてご自由にどうぞ。

人間らしい会話にするには

Race表でhumanまたはhumanSpeakタグを付ける以外に、Chara表にhumanSpeakタグを付けることで、会話時に括弧()を使わない自然な話し方になります。

生成設定

tag 欄を使って、キャラクターの生成条件を細かく設定できます。

CWL旧フォーマット

CWLフォーマットはWikiから削除されました。互換性は維持されていますが、新しいフォーマットへの移行を推奨します。

Possible tag actions:

  • addZone(zoneId@level)
  • addEq(ItemId#Rarity) / addEquipment(ItemId#Rarity)
  • addThing(ItemId#Count)
  • addFlag(FlagName) / addInt(FlagName=1)
  • addFlagValue(FlagName=some_value) / addStr(FlagName=some_value)
  • addBio(BioFileId) / addBiography(BioFileId)
  • addStock(StockFileId)
  • addDrama(DramaFileId)

特定のエリアへ自動生成

addZone(*) タグを使い、* をエリアの id に置き換えると、そのエリアにキャラクターを生成できます。* のままにするとランダムなエリアに生成されます。

  • addZone(startSite) → 起始原野に生成
  • addZone(derphy@-1) → テルフィ地下1階に生成

複数のタグを組み合わせることも可能です。

例:addZone(lumiest),addZone(little_garden),addZone(specwing),addZone(*)
→ 指定した3エリア+ランダムエリアの計4箇所にそれぞれ1人ずつ生成されます。

初期装備・アイテムの設定

生成時に特定の装備やアイテムを持たせることができます。

装備を指定する場合
addEq(アイテムID#希少度) または addEquipment(アイテムID#希少度) を使用します。

希少度は以下のいずれかです:
Random / Crude / Normal / Superior / Legendary / Mythical / Artifact

(メインウェポンに設定)

addEq(BS_Flydragonsword#Legendary),addEq(axe_machine)

アイテムを指定する場合
addThing(アイテムID#個数) を使用します。個数を省略すると1個になります。

addThing(padoru_gift#10),addThing(1174#5)

冒険者として登録する

CWL旧フォーマット

CWLフォーマットはAdventurerBackerを使用しています。互換性はありますが、新しいフォーマットへの移行をお勧めします。

キャラクターのtraitに AdventurerCustom を設定すると、冒険者ランキングに登録され、冒険者リストに表示されるようになります。

冒険者が勝手に移動するのを防ぎたい場合は、addFlag(StayHomeZone) タグを追加してください。

独自の商人在庫を設定する

addStockタグと在庫用JSONファイルを使って、商人独自の在庫を定義できます。

在庫ファイルはLangMod/**/Data/フォルダにstock_識別子.jsonという名前で配置します(識別子はキャラIDや任意の文字列でOK)。例:stock_my_cnpc.jsonstock_unique_armor.json

addStockタグだけ書くと、そのキャラのIDがそのまま使用されます。複数の在庫を組み合わせることも可能です。 例:addStock,addStock(unique_items),addStock(unique_armor)

在庫ファイルの構造

json
{
  "Items": [
    {
      "Id": "example_item",
      "Material": "",
      "Num": 1,
      "Restock": true,
      "Type": "Item",
      "Rarity": "Random",
      "IdentifyLevel": "Identified"
    },
    {
      "Id": "example_item_limited",
      "Material": "granite",
      "Num": 1,
      "Restock": false,
      "Type": "Item",
      "Rarity": "Artifact",
      "IdentifyLevel": "Identified"
    },
    {
      "Id": "example_item_craftable",
      "Material": "",
      "Num": 1,
      "Restock": false,
      "Type": "Recipe",
      "Rarity": "Random",
      "IdentifyLevel": "Identified"
    },
    {
      "Id": "SpShutterHex",
      "Num": 5,
      "Type": "Spell"
    }
  ]
}
  • Items
    インベントリに並ぶアイテムの配列です。
  • Id
    アイテム(Thing)のIDです。この項目は必須です。
    一部の在庫タイプでは、エイリアス・数字ID・名称のいずれも指定できます。
  • Material
    アイテムに使用する素材です。空欄にするとThing側で定義されたデフォルト素材が使われます。
    デフォルト値:""
  • Num
    アイテムの個数です。
    デフォルト値:1
  • Restock アイテムを補充するかどうかを決めます。
    false にすると限定品扱いになり、1回しか購入できません。
    デフォルト値:true
  • Type
    下記のtype説明表をご参照ください。
  • Rarity
    指定できる値:RandomCrudeNormalSuperiorLegendaryMythicalArtifact
    デフォルト値:Normal
  • IdentifyLevel
    アイテムの初期鑑定状態を決めます。
    指定できる値:IdentifiedRequireSuperiorIdentifyKnowQualityUnknown
    デフォルト値:Identified
  • BlessedState
    アイテムの祝福状態を決めます。
    指定できる値:DoomedCursedNormalBlessed
    デフォルト値:Normal
  • NoCopy
    複製できません。
    デフォルト値:false
  • NoRandomSocket
    ランダムなリモートソケットを生成しません。
    デフォルト値:false
  • Sockets
    ソケットとして追加するリモート銃器エンチャントのエイリアス一覧。空文字で空ソケットになります。
  • PriceCalc
    アイテム価格を上書きするための計算式です。
    パラメータ:base(基本価格)、lv(アイテムレベル)、rarity(レアリティ)
    例:"base * 0.2 + lv * 5"
  • MapStr
    アイテム生成後にマージする追加のmapStr値。
  • MapInt
    アイテム生成後にマージする追加のmapInt値。
  • 任意の項目を省略すれば、デフォルト値が適用されます。

在庫アイテムの種類

Type説明
Item通常のアイテム。素材・レア度・個数に対応
Blockブロック。ブロックaliasと素材から生成
Cassetteカセットテープ。IdはBGMの数値IDです
Currency通貨。moneymoney2platmedalinfluencecasino_coinecopoなどが指定可能
Categoryカテゴリから生成します。Id はカテゴリ名です。
Filterフィルターから生成します。Id はフィルター名です。
Tagタグから生成します。Id はタグ名です。
Letter手紙。Idは手紙ID、本文はLangMod/XX/Text/Scrollに配置
ObjObjオブジェクト。aliasを指定
Perfume香水。ElementのaliasまたはID
Plan計画書。ElementのaliasまたはID
Potionポーション。ElementのaliasまたはID
Recipeレシピ
RedBook赤本。Idは書籍ID、本文はLangMod/XX/Text/Bookに配置
Rod杖。ElementのaliasまたはID。Numで充填回数
Runeルーン。ElementのaliasまたはID
RuneFree無法のルーン。ElementのaliasまたはID
Scroll巻物。ElementのaliasまたはID
Skill技術書。ElementのaliasまたはID
Spell魔法書。ElementのaliasまたはID
Usuihon薄い本。宗教IDを指定

コードエディターを使用していない場合は、JSONLint を使用して JSON を検証できます。

セリフ&吹き出し

状況別吹き出し

特定の状況でキャラの頭上に短いセリフを吹き出しで表示できます。

これらのセリフはCharaTextテーブルに書き、キャラ側のidText欄にそのIDを入れることで紐付けます。

状況
calm普段
fov視界に入ったとき
aggro戦闘開始時
dead死亡時
kill敵を倒したとき

「話がしたい」

キャラに「話がしたい」と話しかけたときの専用会話を追加したい場合は、LangMod/**/Dialog/フォルダにdialog.xlsxを用意します。

このテーブルの形式はゲーム本体のElin/Package/_Elona/Lang/_Dialog/dialog.xlsxと同じですが、uniqueシートだけ使い、自分のキャラIDの行だけ書けば大丈夫です。

ここでのIDはキャラのIDと完全に一致させてください。

注意

dialog.xlsxのデータは5行目から書き始めてください(ソーステーブルの4行目開始とは異なります)。

剧情(ドラマ)

選択肢付きの会話や特殊な動作を組み合わせた、深い交流システムです。

剧情に関する詳細は別章に移動しました。

カスタム伝記

キャラクターにさらに個性を持たせたいときは、addBio(ID) タグを使ってオリジナルの伝記を指定できます。
伝記ファイルはJSON形式で、LangMod/**/Data/ フォルダ内に bio_ID.json という名前で保存してください。IDは伝記ごとの固有の識別子です。

例:addBio(MyChara) の場合は bio_MyChara.json に対応します。

json
{
    "Birthday": 11,
    "Birthmonth": 4,
    "Birthyear": 514,
    "Birthplace": "地球",
    "Birthlocation": "咩咩村",
    "Mom": "最高の母",
    "Dad": "最高の父ちゃん",
    "Background": "ここに背景ストーリーを書いてね",
    "FavFood": "mushroom_rare",
    "FavCategory": "mushroom",
    "LikeThing": "stethoscope",
    "LikeHobby": "martial"
}
  • FavFood: Thing表/ThingV表/Food表のID
  • FavCategory: Category表のID
  • LikeThing: 好きなアイテムのID
  • LikeHobby: Element表のalias

コードエディターを使用していない場合は、JSONLint を使用して JSON を検証できます。

ポートレートとテクスチャ

ポートレート

ポートレート(立ち絵とも呼ばれます)は、キャラクターと会話する際、ポップアップウィンドウの左側に表示される画像です。

ポートレートは Portrait フォルダに配置する必要があります。また、Portrait フォルダはあなたのModパッケージ内に配置してください。

ポートレートの詳細は、ポートレートに移動し、キャラクターModのポートレートのセクションをお読みください。

テクスチャ(Sprite)

マップ上のキャラクターのテクスチャですが、より正確にはスプライト(Sprite)と呼びます。

キャラクタースプライト(Sprite)は透明な背景の .png 画像であり、Texture フォルダに配置する必要があります。そして、Texture フォルダはあなたの ゲームのインストールディレクトリ/Elin/Package/カスタムModフォルダ名 に配置します(ここでの カスタムModフォルダ名 があなたのModパッケージになります)。

また、アニメーションスプライト、より大きなサイズのキャンバス、さまざまな条件下で変化するスプライトバリエーションを使用することもできます。

詳細は、メニューの テクスチャMOD セクションに移動してお読みください。

サンプル

ポートレートとテクスチャについては、Tiny Mitaのサンプルを参考にしてください:

This project is an unofficial documentation site and is not affiliated with, endorsed by, or associated with Elin or Lafrontier / Noa. All trademarks are the property of their respective owners.